Electronic distribution of computer software files is required in large systems having different modules, where each module has one or more targets (central processing units, or CPUs) for receiving a copy of the software file. One example of such a system is a telecommunications switch with many input/output port modules, each having a CPU.
It is conventional in such systems to keep the original copy of the software on a file server, which typically has a hard disk and a file storage control system. It is further customary in systems comprising many modules to designate one or more modules as system controllers. Each system controller is responsible for a number of subtending modules. One of the functions of a system controller is the distribution of software data to the CPUs in the subtending modules.
FIG. 1 illustrates a high-level view of a file distribution system 1 according to the prior art. It includes a file server 5 and a destination system 10, including a system controller 15 and a plurality of subtending modules 20, e.g. port cards, having targets (CPUs) 25. The system controller includes a file distributor 30, which optionally has a storage medium 35. The file distributor 30 is connected to each of the CPUs 25 over an interconnect system 40 having destination links 45, the examples of the interconnect system including a bus system or an electronic system which comprises a switching fabric as is conventional in telecommunications switches.
The file server 5 may be connected to the file distributor 30 over a direct transmission link 50, e.g. cable or telephone link. Alternatively, if the file server 5 is geographically remote from the destination system 10, the connection between the file server 5 and the file distributor 30 may be extended via a link through a network 55. It is customary in such cases to transmit the software files to be distributed as a series of packets. In this case the network 55 is a packet network where the transmission of data from the file server 5 to the file distributor 30 is performed by using a conventional packet transmission protocol, e.g. File Transfer Protocol (FTP) or Trivial File Transfer Protocol (TFTP).
There are several known approaches to the distribution of software in the system shown in FIG. 1.
In the first approach, the file is distributed from the file server 5 to the CPUs 25 in two stages according to a store-and-forward method. In the first stage of the method, the file to be distributed is transmitted from the file server 5 to the file distributor 30 over the link 50 or over the network 55 by using a standard file transfer protocol. The file is stored temporarily in the storage memory 135 associated with the file distributor 30, wherein the size of the memory is equal to or exceeds the size of the transferred file. In the second stage, copies of the file stored in the memory 35 are forwarded to each of the CPUs 25 over an interconnect system 40 by using a protocol adapted to the operation of the destination system 10.
The distribution systems using the first approach are disclosed, e.g. in U.S. Pat. No. 5,689,640 to Okanue entitled “Method and system for downloading data to network nodes”, and in U.S. Pat. No. 6,205,445 to Tokuyama entitled “File distribution system and method thereof”.
A major disadvantage of the above-mentioned systems, which use the store-and-forward method, is the need to provide sufficient storage memory at the file distributor to hold a copy of the largest file. As the computer systems evolve, and the targets become more powerful, they will require more sophisticated software, typically resulting in larger program and data files. As a result, this requirement creates either a need for an upgrade of the file distributor to keep pace with the larger files, or imposes a limitation on the maximum size of the files capable of being stored in the file distributor. In any event, it puts an undue limitation on the system and/or the process of the file transfer.
In another approach, the file distributor has no storage memory available to store the file or files to be distributed. Instead, it is a simple multiplexer as described, e.g. in U.S. Pat. No. 5,978,376 to Godse, entitled “Providing access to a distributed data processing system”. In this system, both the link 55 between the file server 5 and the file distributor 30 (“cell multiplexer” in U.S. Pat. No. 5,978,376), and the interconnect system 40 between the file distributor 30 and the CPUs 25 (“devices” in U.S. Pat. No. 5,978,376), including destination links 45, employ the ATM protocol. Furthermore, both link 55 and the links 45, which form the interconnect system 40, run at substantially the same rate of speed. The function of the file distributor 10 is to make copies of each received ATM cell and immediately send one copy of each received cell to each CPU 25.
The disadvantages of this method are caused by its limitations, firstly by the limitation to use a fixed size packet protocol, such as ATM, which can be efficiently broadcast, and secondly by the requirement that all elements in the entire system, including the file server, employ interfaces running the same protocol at substantially the same speed. This restricts the selection of suitable file servers, limiting them to those with ATM interfaces. Additionally, it also puts an undue limitation on the transmission link or the network by requiring it to run at the speed consistent with the internal speed of the destination system. Another disadvantage of this method is that all CPUs must be ready to receive the transferred data simultaneously and at the same rate regardless of any other urgent tasks the CPUs may have.
Yet in another approach to the distribution of software described in Internet Engineering Task Force (IETF) document rfc2090, it has been suggested to use a multicast capable Internet Protocol (IP) router instead of the file distributor 30 to improve the efficiency of the distribution system 100.
The major disadvantages of this method include high cost of placing a multicast capable IP router into the system, and the requirement for all CPUs to become nodes on a routed IP network. This implies a great deal of complexity and cost.
Accordingly, there is a need in industry for the development of an alternative approach to the distribution of software, which would lack the above-mentioned drawbacks.